package pacBioSimple;

import java.util.HashMap;
import java.util.List;

public class PacBioReadContainer  
{
	private String header=null;
	private StringBuilder orginalSequence = null;
	private StringBuilder correctedSequence = null;
	private StringBuilder markedSequence = null;
	private StringBuilder codingSeqeunce=null;
	private List<Integer> notCorrectedPositions = null;
	private HashMap<Integer, Boolean> checked = null;
	private List<Integer>frameShifts =null;
	private int frameshift=0;
	private List<Integer>kmerDirection=null;
	
	private List<Integer>contaminationBreakPoints=null;
	
	
	
	
	public List<Integer> getContaminationBreakPoints() {
		return contaminationBreakPoints;
	}
	public void setContaminationBreakPoints(List<Integer> contaminationBreakPoints) {
		this.contaminationBreakPoints = contaminationBreakPoints;
	}
	public List<Integer> getKmerDirection() {
		return kmerDirection;
	}
	public void setKmerDirection(List<Integer> kmerDirection) {
		this.kmerDirection = kmerDirection;
	}
	public int getFrameshift() {
		return frameshift;
	}
	public void setFrameshift(int frameshift) {
		this.frameshift = frameshift;
	}
	public StringBuilder getMarkedSequence() {
		return markedSequence;
	}
	public void setMarkedSequence(StringBuilder markedSequence) {
		this.markedSequence = markedSequence;
	}
	public String getHeader() {
		return header;
	}
	public void setHeader(String header) {
		this.header = header;
	}
	public List<Integer> getPositionsList() {
		return notCorrectedPositions;
	}
	public void setNotCorrectedPositions(List<Integer> notCorrectedPositions) {
		this.notCorrectedPositions = notCorrectedPositions;
	}
	public StringBuilder getOrginalSequence() {
		return orginalSequence;
	}
	public void setOrginalSequence(StringBuilder orginalSequence) {
		this.orginalSequence = orginalSequence;
	}
	public StringBuilder getCorrectedSequence() {
		return correctedSequence;
	}
	public void setCorrectedSequence(StringBuilder correctedSequence) {
		this.correctedSequence = correctedSequence;
	}
	public HashMap<Integer, Boolean> getChecked() {
		return checked;
	}
	public void setChecked(HashMap<Integer, Boolean> checked) {
		this.checked = checked;
	}
	
	public StringBuilder getCodingSeqeunce() {
		return codingSeqeunce;
	}
	public void setCodingSeqeunce(StringBuilder codingSeqeunce) {
		this.codingSeqeunce = codingSeqeunce;
	}
	@Override
	public String toString() 
	{
		StringBuffer sb = new StringBuffer();
		if(header !=null)
		{
			sb.append(header+"\n");
		}
		if(orginalSequence !=null)
		{
			sb.append(orginalSequence+"\n");
		}
		else
		{
			sb.append("\n");
		}
		if(this.correctedSequence !=null)
		{
			sb.append(correctedSequence+"\n");
		}
		else
		{
			sb.append("\n");
		}
		if(codingSeqeunce !=null)
		{
			sb.append(codingSeqeunce+"\n");
		}
		else
		{
			sb.append("\n");
		}
		if(this.markedSequence!=null)
		{
			sb.append(this.markedSequence+"\n");
		}
		else
		{
			sb.append("\n");
		}
		return sb.toString();
	}
	public List<Integer> getFrameShifts() {
		return frameShifts;
	}
	public void setFrameShifts(List<Integer> frameShifts) {
		this.frameShifts = frameShifts;
	}
	
	public String toString(boolean flag)
	{
		if(!flag)
		return toString();
		else
		{
			StringBuffer sb = new StringBuffer();
			sb.append(header+"\n"+ orginalSequence + "\n"+this.correctedSequence+"\n");
			return sb.toString();
		}
	}
	
	
}
